package com.engine.salary.entity.datacollection;

import com.engine.salary.annotation.I18n;
import com.engine.salary.annotation.SalaryFormulaVar;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Map;

/**
 * 员工基本信息
 * <p>Copyright: Copyright (c) 2022</p>
 * <p>Company: 泛微软件</p>
 *
 * @author qiantao
 * @version 1.0
 **/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DataCollectionEmployee {

    //员工id
    @SalaryFormulaVar(defaultLabel = "员工id", labelId = 86184, dataType = "string")
    private Long employeeId;

    // 个税扣缴义务人
//    private String taxAgentName;
//    @SalaryFormulaVar(defaultLabel = "个税扣缴义务人", labelId = 86184, dataType = "string")
//    private Long taxAgentId;

    //姓名
    @SalaryFormulaVar(defaultLabel = "姓名", labelId = 85429, dataType = "string")
    @I18n
    private String username;

    //部门
    @SalaryFormulaVar(defaultLabel = "部门", labelId = 86185, dataType = "string")
    @I18n
    private String departmentName;
    @SalaryFormulaVar(defaultLabel = "部门ID", labelId = 86185, dataType = "string")
    private Long departmentId;

    //分部名
    @SalaryFormulaVar(defaultLabel = "分部", labelId = 82465, dataType = "string")
    @I18n
    private String subcompanyName;
    @SalaryFormulaVar(defaultLabel = "分部ID", labelId = 82465, dataType = "string")
    private Long subcompanyid;

    //所属成本中心
    private Long costcenterId;

    //工作地点
    private Long locationId;

    //岗位
    @SalaryFormulaVar(defaultLabel = "岗位", labelId = 90633, dataType = "string")
    @I18n
    private String jobtitleName;
    @SalaryFormulaVar(defaultLabel = "岗位ID", labelId = 90633, dataType = "string")
    private Long jobtitleId;

    //入职日期
    @SalaryFormulaVar(defaultLabel = "入职日期", labelId = 86319, dataType = "string")
    private String companystartdate;

    //手机号
    @SalaryFormulaVar(defaultLabel = "手机号", labelId = 98621, dataType = "string")
    private String mobile;

    //离职日期
    private String dismissdate;

    @SalaryFormulaVar(defaultLabel = "状态编码", labelId = 98624, dataType = "string")
    private String status;

    @SalaryFormulaVar(defaultLabel = "状态", labelId = 98622, dataType = "string")
    private String statusName;

    //工号
    @SalaryFormulaVar(defaultLabel = "工号", labelId = 98622, dataType = "string")
    private String workcode;

    //性别
    @SalaryFormulaVar(defaultLabel = "性别", labelId = 98622, dataType = "string")
    private String sex;

    //邮件
    @SalaryFormulaVar(defaultLabel = "邮件", labelId = 92919, dataType = "string")
    private String email;

    //电话
    @SalaryFormulaVar(defaultLabel = "电话", labelId = 98620, dataType = "string")
    private String telephone;

    //职称
    @SalaryFormulaVar(defaultLabel = "职称", labelId = 98623, dataType = "string")
    private String jobcall;

    @SalaryFormulaVar(defaultLabel = "职称ID", labelId = 98623, dataType = "string")
    private Long jobcallId;

    //生日
    @SalaryFormulaVar(defaultLabel = "出生日期", labelId = 98624, dataType = "string")
    private String birthday;

    private Double workYear;
    private Double 	companyWorkYear;

    @SalaryFormulaVar(defaultLabel = "证件号码", labelId = 98624, dataType = "string")
    private String idNo;


    @SalaryFormulaVar(defaultLabel = "账号类型", labelId = 98622, dataType = "string")
    private String accountTypeName;

    /**
     * 账号类型
     * 0/null：主账号    1：次账号
     */
    @SalaryFormulaVar(defaultLabel = "账号类型编码", labelId = 98622, dataType = "string")
    private Integer accountType;

    //是否是系统管理员
    private Boolean isAdmin;

    //是否外部人员
    private boolean extEmp;

    /**
     * 扩展数据
     */
    private Map<String,String> extendData;


}
